package com.axzhengxin.platform.afterloan.mapper;

import com.axzhengxin.platform.afterloan.domain.RiskModelRegHistory;
import com.axzhengxin.platform.afterloan.domain.RiskModelResult;
import com.axzhengxin.platform.afterloan.domain.RiskSignalTableData;
import com.axzhengxin.platform.afterloan.domain.WarnSignalLog;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * RiskModelResultMapper
 * 预警数据访问接口
 *
 * @author jiangnan
 * @date 2021/3/17
 */
public interface RiskModelResultMapper {

    /**
     * 写入预警数据
     *
     * @param result 预警数据
     * @return 影响行数
     */
    int insertRiskModelResult(RiskModelResult result);

    /**
     * 根据预警信号ID查询客户ID
     *
     * @param id 预警信号ID
     * @return 客户ID
     */
    String selectCustomerIdByWarnSignalId(@Param("id") Integer id);

    /**
     * 写预警信号统计记录
     *
     * @param warnSignalLog 预警信号统计记录
     * @return 影响行数
     */
    int insertWarnSignalLog(WarnSignalLog warnSignalLog);

    /**
     * 更新预警信号统计表
     *
     * @param customerId  客户ID
     * @param signalCount 预警信号数量增加值
     * @return 更新行数
     */
    int updateWarnSignalLog(@Param("customerId") String customerId, @Param("signalCount") int signalCount);

    /**
     * 将预警信号统计表该客户的未查看预警信息数量设置为0
     *
     * @param customerId 客户编号
     * @return 更新行数
     */
    int clearWarnSignalLog(@Param("customerId") String customerId);

    /**
     * 写预警调用历史表，用于防止二次注册
     *
     * @param history 历史数据
     * @return 影响行数
     */
    int insertRegHistory(RiskModelRegHistory history);

    /**
     * 根据客户ID查询预警信息列表
     *
     * @param customerId 客户ID
     * @return 预警信息列表
     */
    List<RiskModelResult> queryRiskDataList(String customerId);

    /**
     * 将指定ID的预警信号状态设置为失效
     *
     * @param id 预警信号ID
     * @return 影响行数
     */
    int disableWarnSignal(@Param("id") int id);

    /**
     * 将指定客户的预警信号状态设置为失效
     *
     * @param customerId 客户ID
     * @return 影响行数
     */
    int disableWarnSignalByCustomerId(@Param("customerId") String customerId);

    /**
     * 查询预警信息列表页数据（仅全流程业务）
     *
     * @param data 查询参数集合
     * @return 查询结果集
     */
    List<RiskSignalTableData> selectRiskSignalList(RiskSignalTableData data);

    /**
     * 查询预警信息列表页数据（仅批量上传业务）
     *
     * @param data 查询参数集合
     * @return 查询结果集
     */
    List<RiskSignalTableData> selectRiskSignalListUpload(RiskSignalTableData data);

    /**
     * 查询预警信息列表页数据（全部）
     *
     * @param data 查询参数集合
     * @return 查询结果集
     */
    List<RiskSignalTableData> selectRiskSignalListAll(RiskSignalTableData data);

    /**
     * 查询预警信息当前管护人和手机号码发送短信（仅发送短信用）
     *
     * @param data 查询参数集合
     * @return 查询结果集
     */
    List<RiskModelResult>   selectRiskModelResultSendMsg();

    /**
     * 修改预警数据
     *
     * @param result 预警数据
     * @return 影响行数
     */
    int updateRiskModelResult(RiskModelResult result);


}
